FortiGate IPsec VPN 搭建
[toc]
简介
该博客主要记录,在FortiGate上
搭建IPsec VPN
的过程,主要最终实现了对于site-to-site
(FortiGate-to-FortiGate
)和host-to-site
(Windows10-to-FortiGate
)的搭建
整体的网络拓扑结构
FortiGate 1
:网络适配器1设置为NAT
(192.168.152.0/24
),网络适配器2设置为VMnet1
(192.168.159.0/24
)FortiGate 2
:网络适配器1设置为NAT
(192.168.152.0/24
),网络适配器2设置为VMnet3
(192.168.200.0/24
)pc1
:网络适配器设置为VMnet1
(192.168.159.0/24
)pc2
:网络适配器设置为VMnet3
(192.168.200.0/24
)
在配置host-to-site
时,会在NAT
上再连接一个windows10
的机器
注: pc1
的网关需要设置为192.168.159.3
,pc2
的网络需要设置为192.168.200.3
,否则pc1
会通过192.168.159.2
直接ping
到pc2
FortiGate1的配置
配置 port1 和 port2
首先对于port1
和port2
有如下设置
port1
不用设置DHCP Server
port2
设置DHCP Server
配置 NAT 和 Firewall
接下来我们需要使得内网的流量能走出去,因此设置NAT
和流量的转发
注: 这里的NAT
有一些并不在Central SNAT
的地方开启,而在Firewall Policy
中开启
配置 IPSec VPN site-to-site(FortiGate1-to-FortiGate2)
在IPSec Tunnels
中选择Site-To-Site
进行配置
我们设置FortiGate2
的端口地址以及预共享密钥
注: 这里显示冲突,因为我之前已经配好了,所以才会显示Duplicate entry found.
设置本地的子网和远程的子网
最后会如下显示,如果Create
之后,成功了,说明配置暂时(理论上)没问题
这个时候没有连接的话,会显示Inactive
,而如果已经连接的话会显示up
我们接下来将其转换成Custom
来看看其具体配置是什么,即如果直接用custom
配置的话,应该如何做
可以看到远程网关地址,对应端口,认证方法,ike
版本,模式,阶段一协商用的算法,DH Groups
组数,阶段二的配置
在FortiGate2
也如法炮制的配置一遍即可
注: 对于site-to-site
中的Inactive
图标的地方,可以单击点进去,使用Bring up
将其启动
配置 IPSec VPN host-to-site(win10-to-FortiGate1)
在IPSec Tunnels
中选择Remote Access
进行配置
这里需要提前设置一个L2TP_Group
,Group
类型是防火墙,设置一个用户win1
注: 这里的Client Address Range
是IPSec VPN
连接过来之后,这个FortiGate1
会给这个用户分配的地址范围是什么,这里我原来设置为子网192.168.159.0/24
不成功,所以才如此设置,当然也可以自行再次尝试是否可以为192.168.159.0/24
最终连接的效果会让连接者有一个173.31.1.0/24
的IP
PC1 PC2 配置
基本不需要配置,因为FortiGate1
和FortiGate2
配置好了,但是要注意中间发包是否是ESP
的
最主要的配置,需要将PC1
的网关设置为192.168.159.3
,PC2
的网关设置为192.168.200.3
否则PC1
要么直接不需要隧道就可以到PC2
,要么就是PC1
不能通过隧道走到PC2
sudo route add default gw 192.168.159.3
sudo route add default gw 192.168.200.3
内部如果需要真的上网,则需要将fortigate1
和fortigate2
配置一个静态的路由,从0.0.0.0
均走到192.168.152.2
(如果不上网,可以直接设置disable
),然后再配置pc1
和pc2
的DNS Server
就好了
Win10的配置
对于Windows10
,选择VPN
的地方,可以直接进行如下设置
但是这个时候我连接失败了,通过抓包和查看FortiGate1
的debug log
以及支持的协商加密和认证算法,可以推测是因为Win10
的加密算法都是AES
和DES3
,而FortiGate
都是DES
,所以一直协商失败,于是就需要配置Win10
的IPSec
属性
在高级安全 Windows Defender 防火墙
属性 - IPSec
设置中,可以自定义设置IPSec
用于建立安全连接的设置
在自定义设置中,将密钥交换(主模式)、数据保护(快速模式)、身份验证方式均设置为高级,最主要的是为了能协商成功
然后还需要配置如下内容的连接安全规则,记得勾选使用IPSec
隧道
引用
DHCP NAT配置
https://handbook.fortinet.com.cn/策略与对象/单线路上网配置/DHCP线路上网配置.html
https://blog.csdn.net/meigang2012/article/details/118978718
IPSec VPN配置
https://handbook.fortinet.com.cn/VPN技术/系统原生客户端接入/Windows系统/Windows_IKEv1.html
Win10配置
后续抓包解密
https://blog.csdn.net/rfc2544/article/details/121063565
https://www.golinuxcloud.com/wireshark-decrypt-ipsec-packets-isakmp-esp/
IPSec VPN报文
https://cshihong.github.io/2019/04/03/IPSec-VPN之IKE协议详解
https://handbook.fortinet.com.cn/VPN技术/IPSec_VPN/IPSec_VPN原理.html
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!